#include <stdio.h>

int main() {
    int n;
    long long sum = 0; // 用于存储阶乘和
    // 输入 n，确保 n <= 20
    printf("请输入一个整数 n (n <= 20): ");
    scanf("%d", &n);
    if (n < 1 || n > 20) {
        printf("输入的 n 必须在 1 到 20 之间。\n");
        return 1; // 返回错误代码
    }
    long long fact = 1; // 使用 long long 以避免溢出,存储每次的阶乘结果
    // 计算 1! + 2! + ... + n!
    for (int i = 1; i <= n; i++) {
        //求阶乘
        fact *= i;
        //累加和
        sum += fact;
    }
    // 输出结果
    printf("1! + 2! + ... + %d! = %lld\n", n, sum);

    return 0;
}
